Windows Presentation Foundation

Kamery

Kamery slouží pro zobrazování 3D objektů. Fungují na principu zvaném – promítání. Tento princip promítne tří rozměrný objekt na dvou rozměrnou plochu (monitoru). Při takovémto zobrazování dochází ke zkreslení zobrazovaného objektu. Míru zkreslení určuje typ promítání. V této kapitole budou vysvětleny dva typy promítání a to pravoúhlé a perspektivní. Pro pravoúhlé promítání se používá kamera: OrthographicCamera. Perspektivního promítání je docíleno pomocí kamery: PerspectiveCamera. Na Obrázku 2 je zobrazen rozdíl mez těmito kamerami (promítáními).

Rozdíl mezi perspektivním a pravoúhlým promítáním
Obrázek 2 Rozdíl mezi perspektivním a pravoúhlým promítáním [zdroj: vlastní]

Důležitými pojmy v promítání jsou: promítací paprsek a průmětna. Promítací paprsek jde od bodu na objektu směrem k průmětně. Tam, kde protne průmětnu, bude jeho obraz. Různé druhy promítání se liší ve směru promítacího paprsku k průmětně.

Perspektivní promítání

Perspektivní promítání se podobá lidskému zraku. Pro člověka jsou vzdálenější hrany objektu zdánlivě kratší, než ty co jsou blízko. Zdá se jako by se hrany objektu sbíhaly v nekonečnu. Toto promítání se nejčastěji používá tam, kde je potřeba zobrazit objekty tak jak je člověk vidí. Na Obrázku 3 je zobrazeno perspektivní promítání objektu.

Perspektivní promítání objektu
Obrázek 3 Perspektivní promítání objektu [zdroj: vlastní]

Promítací paprsky směřují do jediného bodu. Vzdálenější hrany objektů se budou zdát kratší.

Pravoúhlé promítání

Pravoúhlé promítání nezkracuje vzdálenější hrany objektů. Je to způsobeno tím, že promítací paprsky jsou kolmé na průmětnu. Tento druh promítání se používá hlavně pro zobrazení objektů bez zkreslení. Objekty je tak snadnější modelovat pomocí nástrojů pro vytváření 3D objektů. Na Obrázku 4 je zobrazeno pravoúhlé promítání.

Perspektivní promítání objektu
Obrázek 4 Pravoúhlé promítání objektů [zdroj: vlastní]

Použití kamer

Obě kamery mají nastavení pozice. Ta se nastavuje jako bod v prostoru. Důležitým nastavením je směr pozorování kamery. Ta se určuje jako vektor. Na Obrázku 5 je zjednodušené nastavení kamery. Chybí zde osa z, ale jinak princip je stejný.

Nastavení pozice a směru pohledu kamery (zjednodušeně)
Obrázek 5 Nastavení pozice a směru pohledu kamery (zjednodušeně) [zdroj: vlastní]
OrthographicCamera
<Viewport3D.Camera>
    <OrthographicCamera Position="5,5,5" 
                        LookDirection="-1,-1,-1" 
                        Width="5"/>
</Viewport3D.Camera>
OrthographicCamera – pravoúhlé promítání
Position – pozice kamery
LookDirection – vektor směru pohledu kamery
Width – čím větší číslo tím se kamera oddálí
Vzdálenější pozice (Position) nemá vliv na oddálení kamery.
PerspectiveCamera
<Viewport3D.Camera>
    <Viewport3D.Camera>
    <PerspectiveCamera Position="5,5,5" 
                       LookDirection="-1,-1,-1" 
                       FieldOfView="30"/>
</Viewport3D.Camera>
PerspectiveCamera – perspektivní promítání
Position – pozice kamery
LookDirection – vektor směru pohledu kamery
FieldOfView – horizontální pohled kamery
Změna vzdálenosti od objektu se změní pomocí Position a FieldOfView.
Ukázkové řešení: 3D Grafika/NastaveniKamery